<!doctype html>
<html lang="en-us">
  <head>
    <title>Learn Docker with a picture // sin-coder</title>
    <meta charset="utf-8" />
    <meta name="generator" content="Hugo 0.59.1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="author" content="csuyzz" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="https://sin-coder.github.io/css/main.min.f90f5edd436ec7b74ad05479a05705770306911f721193e7845948fb07fe1335.css" />

    
    <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Learn Docker with a picture"/>
<meta name="twitter:description" content=" 一张图入门Docker  关于Docker我们在云计算、虚拟化基础概念和容器技术的前世今生两篇文章中已经介绍过其应用的场景
 和优点，在本篇文章我们将学习Docker的一些基础概念和用法，话不多说，赶紧上图
Docker三大基础概念：镜像、容器和仓库 一、镜像（Image）  镜像就类似于我们使用Virtual Box或者VMware创建虚拟机之前需要下载的系统镜像文件，比如iso文件、
 img文件之类的都称为镜像文件。我们可以将Docker镜像理解为一个面向Docker引擎的只读模板，它自身即
包含了文件系统
 镜像与容器的关系就类似于印钞模板与钞票之间的关系，当然我们可以通过Dockerfile来制作自己的镜像。
 制作好的镜像可以被封装在一个盒子中（保存为tar文件），当需要在另一个环境中使用镜像时，只需将盒子
搬过去，重新取出（Load）镜像即可。当然这些比喻并不十分严格，只是帮助理解而已。
 通过版本管理和增量的文件系统，Docker提供了一套十分简单的机制来创建和更新现有的镜像。用户在
 对容器进行修改并提交（commit）后，重新运行依然可以保持这个变化
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;镜像
 二、容器（Container）  容器是从镜像创建的运行实例，可以将其启动（run）、开始、停止和删除，而且这些容器都是相互隔离
 的，互相不可见的。用户可以将容器看做一个简易版的Linux系统环境（包括root用户权限、进程空间、用户
空间和网络空间），以及运行在其中的应用程序打包而成的应用盒子
 镜像本身是可读的，容器从镜像启动的时候，Docker会在镜像的最上层创建一个可写层，镜像本身并没
 有发生改变
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;容器
 三、仓库（Repository）  Docker仓库类似于代码的仓库，是Docker集中存放镜像文件的场所。Docker利用仓库来管理镜像，这
 种设计理念与Git十分相似。用户可以直接从仓库中拉取（pull）镜像来供自己使用，也可以将自行制作镜像
并上传（pull）到仓库中，等到在另外一台机器上使用该镜像时，再pull下来即可
 Docker仓库和注册服务器（Registry）不是同一个概念，注册服务器是存放仓库的地方，其上往往存
 放着多个仓库。每个仓库集中存放某一类的镜像，这些镜像通过Tag进行区分。
 根据所存储镜像的公开与否，Docker仓库可以分为公开仓库和私有仓库。Docker Hub是目前最大的公
 开仓库；当然Docker也支持用户在本地的网络内创建 一个只能自己访问的仓库
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;仓库
当然Docker的内容远不止这些，接下来会 一 一 介绍
 "/>

    <meta property="og:title" content="Learn Docker with a picture" />
<meta property="og:description" content=" 一张图入门Docker  关于Docker我们在云计算、虚拟化基础概念和容器技术的前世今生两篇文章中已经介绍过其应用的场景
 和优点，在本篇文章我们将学习Docker的一些基础概念和用法，话不多说，赶紧上图
Docker三大基础概念：镜像、容器和仓库 一、镜像（Image）  镜像就类似于我们使用Virtual Box或者VMware创建虚拟机之前需要下载的系统镜像文件，比如iso文件、
 img文件之类的都称为镜像文件。我们可以将Docker镜像理解为一个面向Docker引擎的只读模板，它自身即
包含了文件系统
 镜像与容器的关系就类似于印钞模板与钞票之间的关系，当然我们可以通过Dockerfile来制作自己的镜像。
 制作好的镜像可以被封装在一个盒子中（保存为tar文件），当需要在另一个环境中使用镜像时，只需将盒子
搬过去，重新取出（Load）镜像即可。当然这些比喻并不十分严格，只是帮助理解而已。
 通过版本管理和增量的文件系统，Docker提供了一套十分简单的机制来创建和更新现有的镜像。用户在
 对容器进行修改并提交（commit）后，重新运行依然可以保持这个变化
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;镜像
 二、容器（Container）  容器是从镜像创建的运行实例，可以将其启动（run）、开始、停止和删除，而且这些容器都是相互隔离
 的，互相不可见的。用户可以将容器看做一个简易版的Linux系统环境（包括root用户权限、进程空间、用户
空间和网络空间），以及运行在其中的应用程序打包而成的应用盒子
 镜像本身是可读的，容器从镜像启动的时候，Docker会在镜像的最上层创建一个可写层，镜像本身并没
 有发生改变
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;容器
 三、仓库（Repository）  Docker仓库类似于代码的仓库，是Docker集中存放镜像文件的场所。Docker利用仓库来管理镜像，这
 种设计理念与Git十分相似。用户可以直接从仓库中拉取（pull）镜像来供自己使用，也可以将自行制作镜像
并上传（pull）到仓库中，等到在另外一台机器上使用该镜像时，再pull下来即可
 Docker仓库和注册服务器（Registry）不是同一个概念，注册服务器是存放仓库的地方，其上往往存
 放着多个仓库。每个仓库集中存放某一类的镜像，这些镜像通过Tag进行区分。
 根据所存储镜像的公开与否，Docker仓库可以分为公开仓库和私有仓库。Docker Hub是目前最大的公
 开仓库；当然Docker也支持用户在本地的网络内创建 一个只能自己访问的仓库
 有关Docker镜像的操作详解，请参看Docker入门学习&ndash;仓库
当然Docker的内容远不止这些，接下来会 一 一 介绍
 " />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://sin-coder.github.io/post/docker%E5%85%A5%E9%97%A8%E5%AD%A6%E4%B9%A0/" />
<meta property="article:published_time" content="2020-02-01T03:22:01+08:00" />
<meta property="article:modified_time" content="2020-02-01T03:22:01+08:00" />


  </head>
  <body>
    <header class="app-header">
      <a href="https://sin-coder.github.io"><img class="app-header-avatar" src="/cat.jpg" alt="csuyzz" /></a>
      <h1>sin-coder</h1>
      <p>I always remember that &#39;Talk is cheap,show me the code&#39;</p>
      <div class="app-header-social">
        
          <a target="_blank" href="https://github.com/sin-coder" rel="noreferrer noopener"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
  <title>github</title>
  <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg></a>
        
      </div>
    </header>
    <main class="app-container">
      
  <article class="post">
    <header class="post-header">
      <h1 class ="post-title">Learn Docker with a picture</h1>
      <div class="post-meta">
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
  <title>calendar</title>
  <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
          Feb 1, 2020
        </div>
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
  <title>clock</title>
  <circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
          1 min read
        </div><div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
  <title>tag</title>
  <path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line>
</svg>
          <a class="tag" href="https://sin-coder.github.io/tags/%E4%BA%91%E8%AE%A1%E7%AE%97/">云计算</a><a class="tag" href="https://sin-coder.github.io/tags/%E8%99%9A%E6%8B%9F%E5%8C%96/">虚拟化</a><a class="tag" href="https://sin-coder.github.io/tags/docker/">Docker</a></div></div>
    </header>
    <div class="post-content">
      

<h2 id="一张图入门docker">一张图入门Docker</h2>

<hr />

<blockquote>
<p>关于Docker我们在<a href="http://csuyzz.com/post/%E4%BA%91%E8%AE%A1%E7%AE%97%E5%92%8C%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF/">云计算、虚拟化基础概念</a>和<a href="http://csuyzz.com/post/%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%8F%91%E5%B1%95/">容器技术的前世今生</a>两篇文章中已经介绍过其应用的场景</p>
</blockquote>

<p>和优点，在本篇文章我们将学习Docker的一些基础概念和用法，话不多说，赶紧上图</p>

<p><img src="https://s2.ax1x.com/2020/02/02/1YeyhF.png" alt="1YeyhF.png" style="zoom:100%;" /></p>

<h2 id="docker三大基础概念-镜像-容器和仓库">Docker三大基础概念：镜像、容器和仓库</h2>

<h3 id="一-镜像-image">一、镜像（Image）</h3>

<blockquote>
<p>镜像就类似于我们使用Virtual Box或者VMware创建虚拟机之前需要下载的系统镜像文件，比如iso文件、</p>
</blockquote>

<p>img文件之类的都称为镜像文件。我们可以将Docker镜像理解为一个面向Docker引擎的只读模板，它自身即</p>

<p>包含了文件系统</p>

<blockquote>
<p>镜像与容器的关系就类似于印钞模板与钞票之间的关系，当然我们可以通过Dockerfile来制作自己的镜像。</p>
</blockquote>

<p>制作好的镜像可以被封装在一个盒子中（保存为tar文件），当需要在另一个环境中使用镜像时，只需将盒子</p>

<p>搬过去，重新取出（Load）镜像即可。当然这些比喻并不十分严格，只是帮助理解而已。</p>

<blockquote>
<p>通过版本管理和增量的文件系统，Docker提供了一套十分简单的机制来创建和更新现有的镜像。用户在</p>
</blockquote>

<p>对容器进行修改并提交（commit）后，重新运行依然可以保持这个变化</p>

<blockquote>
<p>有关Docker镜像的操作详解，请参看Docker入门学习&ndash;镜像</p>
</blockquote>

<h3 id="二-容器-container">二、容器（Container）</h3>

<blockquote>
<p>容器是从镜像创建的运行实例，可以将其启动（run）、开始、停止和删除，而且这些容器都是相互隔离</p>
</blockquote>

<p>的，互相不可见的。用户可以将容器看做一个简易版的Linux系统环境（包括root用户权限、进程空间、用户</p>

<p>空间和网络空间），以及运行在其中的应用程序打包而成的应用盒子</p>

<blockquote>
<p>镜像本身是可读的，容器从镜像启动的时候，Docker会在镜像的最上层创建一个可写层，镜像本身并没</p>
</blockquote>

<p>有发生改变</p>

<blockquote>
<p>有关Docker镜像的操作详解，请参看Docker入门学习&ndash;容器</p>
</blockquote>

<h3 id="三-仓库-repository">三、仓库（Repository）</h3>

<blockquote>
<p>Docker仓库类似于代码的仓库，是Docker集中存放镜像文件的场所。Docker利用仓库来管理镜像，这</p>
</blockquote>

<p>种设计理念与Git十分相似。用户可以直接从仓库中拉取（pull）镜像来供自己使用，也可以将自行制作镜像</p>

<p>并上传（pull）到仓库中，等到在另外一台机器上使用该镜像时，再pull下来即可</p>

<blockquote>
<p>Docker仓库和注册服务器（Registry）不是同一个概念，注册服务器是存放仓库的地方，其上往往存</p>
</blockquote>

<p>放着多个仓库。每个仓库集中存放某一类的镜像，这些镜像通过Tag进行区分。</p>

<blockquote>
<p>根据所存储镜像的公开与否，Docker仓库可以分为公开仓库和私有仓库。Docker Hub是目前最大的公</p>
</blockquote>

<p>开仓库；当然Docker也支持用户在本地的网络内创建 一个只能自己访问的仓库</p>

<blockquote>
<p>有关Docker镜像的操作详解，请参看<a href="http://csuyzz.com/post/docker-image/">Docker入门学习&ndash;仓库</a></p>

<p>当然Docker的内容远不止这些，接下来会 一 一 介绍</p>
</blockquote>

    </div>
    <div class="post-footer">
      
    </div>
  </article>

    </main>
  </body>
</html>
